//
//  CZVisltorView.swift
//  CZweibo
//
//  Created by mac on 16/3/26.
//  Copyright © 2016年 mac. All rights reserved.
//

import UIKit
//定义协议
@objc protocol CZVisltorViewDelegate: NSObjectProtocol{
 optional func CZVisltorViewDidClickRegisterButton()
    
 optional func CZVisltorViewDidclickLoginButton()
 
}

class CZVisltorView: UIView {
    //定义代理属性
    weak var delegate: CZVisltorViewDelegate?
    
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        prepareUI()
    }
    /**
     分别设置访客视图的内容
     
     - parameter imageName: 图片名字
     - parameter message:   消息内容
     */
    func setupVisitor(imageName:String,message:String){
         homeView.hidden = true
        self.sendSubviewToBack(coverView)
         iconView.image = UIImage(named: imageName)
         messageLabel.text = message
        
        
    }
    /**
     转轮 旋转
     */
    func startRotation(){
        //核心动画
      let rotation = CABasicAnimation(keyPath: "transform.rotation")
        // 旋转360度
        rotation.toValue = M_PI * 2
        // 旋转20秒
        rotation.duration = 20
        //循环
        rotation.repeatCount = MAXFLOAT
        // 动画切换界面不停
        rotation.removedOnCompletion = false
        
        //添加到图层上面
        iconView.layer.addAnimation(rotation, forKey: nil)
    
    }
    
    //准备UI
    private func prepareUI(){
        backgroundColor = UIColor(white: 237/255.0, alpha: 1)
        // 1.添加子控件
        addSubview(iconView)
        addSubview(coverView)
        addSubview(homeView)
        addSubview(messageLabel)
        addSubview(registerButton)
        addSubview(loginButton)
        
        // 2.添加约束
       iconView.translatesAutoresizingMaskIntoConstraints = false
       coverView.translatesAutoresizingMaskIntoConstraints = false
       homeView.translatesAutoresizingMaskIntoConstraints = false
       messageLabel.translatesAutoresizingMaskIntoConstraints = false
       registerButton.translatesAutoresizingMaskIntoConstraints = false
       loginButton.translatesAutoresizingMaskIntoConstraints = false
    
        
        // 转轮
        /*
        1.item: 要约束的View
        2.attribute: 要约束的view的属性
        3.relatedBy: 参照
        4.toItem: 参照的View
        */
        // 约束要添加,约束统一添加到付控件上面
        addConstraint(NSLayoutConstraint(item: iconView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0))
      addConstraint(NSLayoutConstraint(item: iconView, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: -40))
        
        //遮罩
       addConstraint(NSLayoutConstraint(item: coverView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0))
        
       addConstraint( NSLayoutConstraint(item: coverView, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 0))
        
      addConstraint(NSLayoutConstraint(item: coverView, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 0))
        
       addConstraint(NSLayoutConstraint(item: coverView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: loginButton, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0))
        
        //房子
       addConstraint(NSLayoutConstraint(item: homeView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: iconView, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0))
        
       addConstraint(NSLayoutConstraint(item: homeView, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: iconView, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0))
        
        // 消息label
        addConstraint(NSLayoutConstraint(item: messageLabel, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: iconView, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0))
        
        addConstraint(NSLayoutConstraint(item: messageLabel, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: iconView, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 16))
        
      addConstraint(NSLayoutConstraint(item: messageLabel, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 260))
        
        //注册按钮
      addConstraint(NSLayoutConstraint(item: registerButton, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: messageLabel, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0))
        
       addConstraint(NSLayoutConstraint(item: registerButton, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: messageLabel, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 16))
        
       addConstraint(NSLayoutConstraint(item: registerButton, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 100))
        
       addConstraint(NSLayoutConstraint(item: registerButton, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 35))
        
        //登录按钮
        addConstraint(NSLayoutConstraint(item: loginButton, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: messageLabel, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 0))
        
        addConstraint(NSLayoutConstraint(item: loginButton, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: messageLabel, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 16))
        
        addConstraint(NSLayoutConstraint(item: loginButton, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: registerButton, attribute: NSLayoutAttribute.Width, multiplier: 1, constant: 0))
        
        addConstraint(NSLayoutConstraint(item: loginButton, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: registerButton, attribute: NSLayoutAttribute.Height, multiplier: 1, constant: 0))

        
        

    }
    //MARK: - 加载按钮点击事件
    //注册按钮
    func didClickRegisterButton() {
      print("注册按钮")
    //调用代理方法
    delegate?.CZVisltorViewDidClickRegisterButton?()
    
    }
    
    //登录按钮
    func didclickLoginButton() {
    print("登录按钮")
        delegate?.CZVisltorViewDidclickLoginButton?()
    
    }
    
 // MARK: - 懒加载
    //加载视图的图片 - 转轮
    private lazy var iconView : UIImageView=UIImageView(image: UIImage(named: "visitordiscover_feed_image_smallicon"))
    
    //房子
    private lazy var homeView : UIImageView = UIImageView(image: UIImage(named: "visitordiscover_feed_image_house"))
    /// 遮罩
    private lazy var coverView: UIImageView = UIImageView(image: UIImage(named: "visitordiscover_feed_mask_smallicon"))
    
    //消息Label
    private lazy var messageLabel : UILabel = {
    let label = UILabel()
    label.text="关注一些人,看看有什么惊喜！！"
    label.textAlignment = NSTextAlignment.Center
    label.font = UIFont.systemFontOfSize(18)
    label.numberOfLines = 0
    label.sizeToFit()
    return label
    }()
    
    //注册按钮
    private lazy var registerButton : UIButton = {
    let button = UIButton()
    button.setBackgroundImage(UIImage(named: "common_button_white_disable"), forState: UIControlState.Normal)
        
    button.setTitle("注册", forState: UIControlState.Normal)
        
    button.setTitleColor(UIColor.orangeColor(), forState: UIControlState.Normal)
    
    button.addTarget(self, action: "didClickRegisterButton", forControlEvents: UIControlEvents.TouchUpInside)
        
        
    return button
    }()
    
    //登录按钮
    private lazy var loginButton : UIButton = {
    let button = UIButton()
    button.setBackgroundImage(UIImage(named: "common_button_white_disable"), forState: UIControlState.Normal)
        
    button.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
        
    button.setTitle("登录", forState: UIControlState.Normal)
        
    button.addTarget(self, action: "didclickLoginButton", forControlEvents: UIControlEvents.TouchUpInside)
    
    return button
    }()

}
